package com.zh.mycommon.value;

import java.util.ArrayList;
import java.util.List;

/**
 * 四元组
 *
 * @author ZH
 * @date 18:38 2023/7/31
 */
public record Tuple4<A, B, C, D>(A v1, B v2, C v3, D v4) {

    public static <T extends Comparable<T>> Tuple4<T, T, T, T> sorted(Tuple4<T, T, T, T> tuple) {
        List<T> values = new ArrayList<>(4);
        values.add(tuple.v1());
        values.add(tuple.v2());
        values.add(tuple.v3());
        values.add(tuple.v4());
        values.sort(Comparable::compareTo);
        return new Tuple4<>(values.get(0), values.get(1), values.get(2), values.get(3));
    }
}
